package api;

import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import lombok.SneakyThrows;
import model.Article;
import util.AppVar;
import util.DBUtils;
import util.ResultUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 * 获取我的文章详情
 */
@WebServlet("/myartlist")
public class MyArticleListServlet extends HttpServlet {
    @SneakyThrows
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List<Article> list=new ArrayList<>();
        String msg="未知错误";
        String uidStr=req.getParameter("uid");
if(!StrUtil.isBlank(uidStr)){
    int uid=Integer.valueOf(uidStr);
    //查询数据库得到文章列表
    //1.得到connection
    Connection connection= DBUtils.getConnection();
    //2.拼接SQL得到执行器
    String sql=" select * from article where uid=?";
    PreparedStatement statement=connection.prepareStatement(sql);
    //3.设置占位符并执行SQL
    statement.setInt(1,uid);
    ResultSet resultSet=statement.executeQuery();
    //4.将查询的结果添加到容器中
    while(resultSet.next()){
        String context=resultSet.getString("context");
        Article article=new Article();
        article.setAid(resultSet.getInt("aid"));
        article.setTitle(resultSet.getString("title"));
        article.setContext(context);
        //简介
        int subLength=Integer.min(20,context.length());
        article.setDesc(context.substring(0,subLength).replace("#"," "));
        String createtime=resultSet.getString("createtime");
        article.setCreatetime(createtime.substring(0,createtime.lastIndexOf(".")));

        article.setReadcount(resultSet.getInt("readcount"));
        article.setUid(resultSet.getInt("uid"));
        article.setState(resultSet.getInt("state"));
        list.add(article);
    }
    //关闭资源
    DBUtils.close(resultSet,statement,connection);
}else{
    msg="非法参数";
}
resp.setContentType("application/json;charset=utf-8");
resp.getWriter().println(JSONUtil.toJsonStr(ResultUtil.toResult(
        200,list,msg)));
    }
}












